1. Dari Penjumlahan ke Perkalian
Dalam kerangka teoretis, transformasi linier dan translasi (peta afinitas) sering dikelola secara terpisah. Namun, perpustakaan berkinerja tinggi seperti BLAS (Subrutin Aljabar Linier Dasar) diasuh secara khusus untuk hasil kali matriks-vektor dan matriks-matriks. Untuk memanfaatkan kernel-kernel ini, kita menyatakan semua operasi sebagai:
$$T(v) = Av$$
2. Koordinat Homogen
Untuk menerapkan pergeseran dalam $\mathbf{R}^n$ menggunakan matriks, kita memperluas ke $\mathbf{R}^{n+1}$. Vektor $[x, y, z]^T$ menjadi $[x, y, z, 1]^T$. Angka "1 tambahan" ini memungkinkan translasi dienkripsi dalam kolom terakhir dari matriks $(n+1) \times (n+1)$.
Translasi oleh $v_0 = [t_x, t_y, t_z]^T$ direpresentasikan oleh:
$$A = \begin{bmatrix} 1 & 0 & 0 & t_x \\ 0 & 1 & 0 & t_y \\ 0 & 0 & 1 & t_z \\ 0 & 0 & 0 & 1 \end{bmatrix}$$
Angka $0, 0, 0, 1$ pada baris terakhir memiliki peran penting. Ketika $A$ dikalikan dengan vektor yang memiliki komponen akhir $1$, komponen akhir hasilnya adalah:
$(0 \cdot x) + (0 \cdot y) + (0 \cdot z) + (1 \cdot 1) = 1$
Ini menjamin sifat "afinitas" data tetap terjaga, memungkinkan operasi berurutan tanpa kehilangan integritas sistem koordinat.
3. Standar Implementasi: BLAS
Efisiensi numerik bergantung pada subrutin standar. BLAS menyediakan tiga tingkat operasi:
- Tingkat 1: Operasi vektor-vektor (misalnya produk titik).
- Tingkat 2: Operasi matriks-vektor ($Ax+b$).
- Tingkat 3: Operasi matriks-matriks ($AB+C$), yang paling padat secara komputasi dan efisien secara perangkat keras.